package gobelinmaker.data;

import com.esotericsoftware.minlog.Log;
import gobelinmaker.client.GobelinClient;
import gobelinmaker.server.GobelinServer;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

/**
 * Belépési pont.
 *
 * @author imruf84
 */
public class GobelinMaker {

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {

        Log.set(com.esotericsoftware.minlog.Log.LEVEL_NONE);

        List<String> argsl = Arrays.asList(args);

        boolean run = false;

        if (argsl.contains("client")) {
            GobelinClient client = new GobelinClient();
            run = true;
        }

        if (argsl.contains("server")) {
            try {
                int nameIndex = argsl.indexOf("name");

                // Szerver létrehozása.
                final GobelinServer server = new GobelinServer(
                        (0 > nameIndex ? "" : args[nameIndex + 1]),
                        argsl.contains("vcameras"),
                        argsl.contains("vmotors"),
                        argsl.contains("vlights")
                );
            } catch (IOException ex) {
                System.err.println(ex.getLocalizedMessage());
            } catch (Exception ex) {
                System.err.println(ex.getLocalizedMessage());
            }
            run = true;
        }

        // Ha nem indítottunk el semmit akkor elindítjuk az alkalmazáskezelőt.
        if (!run) {
            GobelinClient.setLookAndFeel();
            ApplicationChooser ac = new ApplicationChooser();
            ac.setVisible(true);
        }

    }

}
